Information processing apparatus, method of information processing, and storage mediurn for performing scaling processing on image data

ABSTRACT

An information processing apparatus transmits a print job including input image data to an image processing apparatus connected thereto, and includes: a determination unit that determines whether a width and/or height of the input image data is smaller than a predetermined threshold, and whether a scaling factor for the image data at a time of output is one or less; a color value determination unit that determines color values of pixels constituting the image data in the case that it has been determined that the width and/or height of the image data is smaller than the predetermined threshold and that the scaling factor for the image data at the time of output is one or less; and a transmission unit that, in the case that it has been determined that the pixels constituting the image data have the same color value, transmits replacement image data having a smaller size.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a Continuation of U.S. patent application Ser. No.12/511,949 filed Jul. 29, 2009, which claims priority from JapanesePatent Application No. 2008-197973 filed Jul. 31, 2008, both of whichare hereby incorporated by reference in their entirety.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to an information processing apparatus forperforming scaling processing on image data.

2. Description of the Related Art

Known processing methods for creating print data from electronicdocuments include print instructions using a page description language(PDL).

In other words, a printer driver operating on a host computer convertsprint instructions from application software into PDL print data thatcan be processed by image processing apparatuses.

An image processing apparatus that receives a print processing job isconfigured to create a bitmap image (page image) representing thecontent of a page corresponding to the PDL.

Such image data rendering commands in PDL includes a group of commandssuch as character printing commands, various graphic commands includingline drawing commands, and image rendering commands.

Some of the image data rendering commands in PDL include versatilecommands such as logical rendering operations (specifying a rasteroperation (ROP) such as AND or OR), specifying a clipping area, macrocommands storing and calling a plurality of commands in a group, and acommand group for setting up various printing environments.

In accordance with the development of a print on demand (POD) market andincreasingly versatile user needs in recent years, the content of printinstructions from application software such as DTP or CAD software,output to image processing apparatuses such as page printers, isbecoming increasingly complex.

Hence, there is an increasing demand for an increased processing speedfor PDL data.

Examples of the cases in which the content of printing commands becomescomplex, as described above, or the volume of the commands increasesinclude cases in which image data handled by application software isdivided into a plurality of minute areas, and is rendered as a largenumber of fragmentary pieces of image data.

In some of these cases, application software divides a single block ofimage data into around a million minute areas, in accordance with thekind of the application, the size of the original image data, or theprinting resolution with which an image processing apparatus processesthe data.

In this case, when reduction is specified for the individual dividedimage data blocks in accordance with print settings or the kind ofapplications, the printing performance is decreased due to the followingreasons.

(1) The size of print data is too large since image data beforereduction, which exceeds the size of a print area printed by an imageprocessing apparatus, is sent from a printer driver to the imageprocessing apparatus.

(2) A reduction process for received image data is required in the imageprocessing apparatus to suppress the degradation of quality inaccordance with the reduction ratio specified by the printer driver,using a predetermined interpolation algorithm.

In a great number of cases, an individual divided minute image datablock is a single-color image data block which consists of pixels havingthe same color value.

As a technology for increasing the processing speed for suchsingle-color images, the following technology is disclosed in JapanesePatent Laid-Open No. 2000-255123.

(1) It is determined whether or not image data consists of a singlecolor, and when it is determined that the image data consists of asingle color, a color conversion process for part of the image data isomitted, and the area for which the process was omitted uses the samecolor value as that of the result of the color conversion process forother parts, thereby increasing the speed of the color conversionprocess.

(2) It is determined whether or not image data can be converted intographic data, and the image data that has been determined to be able tobe converted into graphic data is converted into graphic data.

The following technology is disclosed in Japanese Patent Laid-Open No.2001-101431 as a technology for increasing the speed using thecharacteristic of the pixels of a rendering object.

(1) By detecting the horizontal or vertical direction of gradation, aportion of the image in a direction perpendicular to the gradationdirection is replaced with a number of adjacent pixels having thegradation level of the first pixel (a line of pixels having the samegradation is created by copying the first pixel).

(2) Gradation is created by repeatedly copying the pixels of the firstrow for the horizontal gradation and repeatedly copying the pixels ofthe first column for the vertical gradation.

In the image processing apparatus described in Japanese Patent Laid-OpenNo. 2000-255123, input PDL commands are analyzed one by one, and imagerendering commands are sequentially processed, thereby increasing theprocessing efficiency in the image processing apparatus.

However, Japanese Patent Laid-Open No. 2000-255123 does not address theproblem that the excessive size of the print data is sent when a printerdriver sends a large number of minute image data blocks to an imageprocessing apparatus, where a reduction process is performed.

Japanese Patent Laid-Open No. 2001-101431 has a problem in that since aconstant-gradation direction, i.e., a direction in which the same colorvalue is repeated, is detected independent of the sizes of objects, atime-consuming process of detecting single-color image data for all theobjects is required, thereby increasing the total processing time.

As described above, known information processing apparatuses have theproblem of the excessive size of the print data and increased processingtime when image data divided into minute data blocks is reduced and sentfrom a printer driver to an image processing apparatus to be output.

SUMMARY OF THE INVENTION

To solve the above-described problems the present invention provides aninformation processing apparatus that transmits a print job including aninput image data block to an image processing apparatus to which theinformation processing apparatus is connected, and includes thefollowing: (1) a determination unit configured to determine whether ornot a width and/or height of the input image data block is smaller thana predetermined threshold, and whether or not a scaling factor for theimage data block at a time when the image data block is output by theimage processing apparatus is one or less; (2) a color valuedetermination unit configured to determine color values of pixelscorresponding to the image data block in the case that the determinationunit has determined that the width and/or height of the image data blockis smaller than the predetermined threshold and that the scaling factorfor the image data block at the time when the image data block is outputby the image processing apparatus, is one or less; and (3) atransmission unit configured to, in the case that the color valuedetermination unit has determined that the pixels corresponding to theimage data block have the same color value, transmit a replacement imagedata block having a smaller size than the original image data block.

The present invention configured as described above provides thefollowing advantages by simplifying the reduction process forsingle-color image data for which reduction is specified.

It becomes unnecessary for the printer driver in an informationprocessing apparatus to transmit image data of a source image whosewidth and height are larger than those of a destination area in anoutput apparatus, where printing is to be performed.

This allows reduction in print data size, thereby increasing the speedof an image rendering process.

Further, it becomes unnecessary for an image processing apparatus toperform complex reduction processing, for each pixel, includinginterpolation in accordance with the scaling factor.

This allows reduction of the image data processing load of an imageprocessing apparatus, thereby increasing the speed of a printingprocess.

Further features of the present invention will become apparent from thefollowing description of exemplary embodiments with reference to theattached drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram explaining a configuration of an imageprocessing system including a host computer and a printer according toembodiments of the present embodiment.

FIG. 2 is a block diagram showing a configuration of program modules,operating on the host computer, regarding a printing process in a firstembodiment.

FIG. 3 illustrates an example GUI screen of a printer driver accordingto the first embodiment.

FIG. 4 is a sectional view showing the internal structure of an MFP asan example of an image processing apparatus according to the firstembodiment.

FIG. 5 is a schematic diagram showing an existing rendering method forimage data having a specified scaling factor.

FIG. 6 illustrates how a source image is replaced with an image having ascaling factor of one, i.e., having the same size as that of adestination image using a printer driver according to the firstembodiment.

FIG. 7 illustrates how a source image is converted into a size which isthe smallest pixel unit using a printer driver according to a secondembodiment.

FIG. 8 is a flowchart showing the steps of processing image dataperformed by the printer driver of the first embodiment.

FIG. 9 is a flowchart showing the processing steps for a renderingcommand performed by a printer according to a third embodiment.

FIG. 10 illustrates a conversion method for single-color image dataaccording to the first embodiment.

FIG. 11 illustrates examples of image rendering commands created by anexisting printer driver.

FIG. 12 illustrates examples of image rendering commands created by theprinter driver according to the first embodiment.

FIG. 13 illustrates an example of a data array used for image dataconversion in the second embodiment.

FIG. 14 illustrates a configuration of part of an image processingmodule in the printer driver according to the first embodiment.

DESCRIPTION OF THE EMBODIMENTS

Examples of the usage of image data rendering commands in a PDL programused in the embodiments described below are explained with reference toFIGS. 5 and 11.

FIG. 5 shows how a source image 501 described as PDL data, i.e., imagedata associated with a real image, is rendered, through scaling, in anarea shown by a destination image 502.

The area shown by a destination image is an image area into which datais output after being developed by a printer. In other words, it is arendering area after a source image has been scaled. The size of thisarea is determined by a reduction/enlargement factor and the size of thesource image.

In other words, the enlargement or reduction of image data is thought tobe specified by an image data rendering command accompanied by thefollowing four parameters.

-   -   width (srcw) and height (srch) of a source image    -   width (dstw) and height (dsth) of a destination image

Here, the scaling factors are classified into enlargement/samesize/reduction in accordance with the value relationship of the fourparameters. For instance, when the width srcw of a source image islarger than the width dstw of a destination image, rendering isperformed by reducing the size in the horizontal direction of the sourceimage data by a predetermined factor, as shown in FIG. 5.

FIG. 11 shows specific examples of image data rendering commands.

In FIG. 11, one byte in “{ }” shows the kind of a rendering command, andone byte in “< >” shows the kind of a parameter accompanying therendering command.

Here, an image rendering command consists of a group of commands: {0x53}(“start image” command), {0x54} (“transfer image” command), and {0x18}(“end image” command).

The parameters of a “start image” command specify various attributeinformation for the image data. The two numerical values following<0xe2> show the width dstw and height dsth of the destination image, andthe two numerical values following <0xe3> show the width srcw and heightsrch of the source image, all in units of pixels.

The rendering commands shown in FIG. 11 show an example of renderingimage data for an image for which the width×height=6×2 pixels, the colortype=RGB, the pixel gradation=8 bits, and the compressiontype=uncompressed, at a position (589, 772) in the page coordinates byreducing the size of the image into an area of 2×1 pixels.

In other words reduction of ⅓ in the height direction and ½ in the widthdirection are instructed.

At this time, a parameter of a “transfer image” command specifies theentity of the image data, which is represented by the exact volume inbytes of the source image calculated from the width, height andgradation thereof. In FIG. 11, one pixel of the image data consists ofthree elements R, G, and B, a total of three bytes, and hence the 6(width)×2 (height) source image is represented by 6×2×3=36 bytes.

First Embodiment

Hereinafter, a first embodiment of the present embodiment is describedwith reference to the attached drawings.

FIG. 1 shows a block diagram explaining a configuration of an imageprocessing system according to the present embodiment.

Note that the present invention, if the functions of the invention arerealizable, can be applied to a configuration functioning in a singleinformation processing apparatus or a system including a plurality ofapparatuses such as a client server system, unless otherwise stated.

In FIG. 1, a reference numeral 102 denotes a host computer, whichincludes a CPU 109.

The CPU 109 performs processing of documents including graphics, images,characters, etc., by using the application programs stored in a programROM 110 a included in a ROM 110 or on a hard disk drive (HDD) 119, whichis an external storage device.

Further, the CPU 109 performs overall control of various devicesconnected to a system bus 108 on a control board 107 in the hostcomputer 101.

The program ROM 110 a or the HDD 119, which is an external storagedevice, stores a boot program for setting initial settings at the timeof power on, and the operating system program (hereinafter called OS),which is a basic control program.

This OS controls various externally connected devices and performsresource management for a RAM 111 and the HDD 119.

A font ROM (not shown) in the ROM 110 and the HDD 119, which is anexternal storage device, store font data to be displayed on a display114.

The HDD 119, which is an external storage device, stores various datafiles used for the document processing, and also stores a program fileof a printer driver that converts print instructions from theapplication into print control commands that can be interpreted by aprinter 102.

The RAM 111 functions as the main memory of the CPU 109, a work area,etc.

A keyboard controller (KBC) 115 controls input from a keyboard 116 and apointing device (not shown).

A display controller 113 controls display of the display 114.

An external storage device controller 118 controls accessing of the HDD119, which is an external storage device storing the OS, variousapplications, additional font data, user files, etc.

An external device I/O 117 controls accessing of an optionally addedexternal device (not shown), such as a hard disk drive and a floppy(registered trademark) disk.

A printer I/F unit 112, connected to the printer 102 via a predeterminedbidirectional interface 106, controls processing of communication withthe printer 102.

Examples of bidirectional interfaces include a USB interface, an IEEE1394 interface, and a wired or wireless LAN.

A user who controls the host computer 101 opens a window regarding printsettings using a menu of applications, and sets print settings such as aprint mode and the number of copies using the keyboard 116 etc.

In the printer 102 to which the host computer 101 is connected, aprinter 121 performs overall control of various devices such as an ASIC126, which is a hardware circuit, connected to a system bus 120 in aprinter control unit (controller) 103. A printer CPU 121 creates anoutput image using a control program stored in a program ROM 122 a, andoutputs a video signal in accordance with the output image to a printerengine (printing unit) 105 connected via a printing unit I/F 125.

The program ROM 122 a includes at least one kind of page descriptionlanguage analysis program (hereinafter called a PDL interpreter).

The printer CPU 121, by executing a PDL interpreter loaded in a RAM 123,interprets a print job output from the host computer 101, and convertsthe print job into bitmap data which is printable by the printer engine105.

The printer 102 may be configured so as to allow an optional ROM to bemounted in an expansion ROM slot (not shown), whereby another kind ofPDL interpreter included in the optional ROM may be added.Alternatively, using a configuration which stores more than one kind ofPDL interpreter in the program ROM 122 a in advance, a PDL interpretermay be added by being optionally made valid on the basis of a licensekey entered through a user operation.

Examples of PDLs include LIPS, PostScript, and PCL.

A ROM 122 further includes a font ROM 122 b that stores font data usedto create the output image and a data ROM 122 c that stores tables usedfor various kinds of image processing, etc.

The printer CPU 121 is configured so as to be allowed to communicatewith the host computer 101 via a host I/F unit 124. The printer CPU 121receives print data, and notifies the host computer 101 of variousstatus information of the printer 102. The RAM 123 functions as aprogram area for loading a program executed by the printer CPU 121, awork area for storing various data, etc. In other words, the RAM 123 isused as a receiving buffer 123 a for temporarily storing a print jobreceived from the host computer 101, and is used to create a page imagein accordance with the input PDL. For instance, the RAM 123 is used as arendering object memory 123 b for storing the analysis result of theprint job as an intermediate object and a page spool memory 123 c forstoring a page image into which the rendering object has been developed.Further, the RAM 123 is used as a work memory 123 d for storingenvironment data and an NVRAM (not shown) for storing menu settingcontent, etc.

An operation unit 104 includes an operation panel used to set variousmenus and other operations for the printer 102 via the printing unit I/F127, an LED display unit, etc.

The printer 102 is configured in such a manner as to allow the memorycapacity to be increased by an optional RAM connected to an expansionport (not shown).

The printer engine 105 performs printing by forming a latent image on aphotoconductor drum in accordance with a video signal, and making theimage be thermally fixed on a sheet.

The printer engine 105 applied to the present embodiment may be an imageprocessing apparatus based on various printing systems, such as a laserbeam printer (hereinafter, called an LBP) or an inkjet printer.

Further, a single function image processing apparatus (SFP) having onlya printer function or a multifunction image processing apparatus (MFP)having multiple functions such as copy/fax/print functions. Here, SFPand MFP respectively stand for “single function peripheral” and “multifunction peripheral”.

In other words, any configuration which can realize the controlaccording to the present embodiment may be employed.

FIG. 2 is a block diagram showing a program configuration regarding aprinting process in the host computer 101 according to the presentembodiment.

In FIG. 4, an application 202, a graphic engine 204, a print processor206, a printer driver 207, and a system spooler 208 are stored as filesin the HDD 119, which is an external storage device, shown in FIG. 1.These are a group of program modules which are loaded in the RAM 111 bythe OS at the time of execution and executed by the CPU 109. Note thatthe graphic engine 204, the print processor 206, and the system spooler208 are provided as OS modules 203, which are part of the OS.

The application 202 and the printer driver 207 can be installed in theHDD 119 via a CD-ROM or a network connected to the external device I/O117.

Here, when the application 202 gives various rendering instructions tothe display 114 or the printer 102, the application 202 performsrendering using GDI, which is a group of service functions provided bythe graphic engine 204, part of the OS. Here GDI stands for GraphicDevice Interface.

When a user gives a print instruction for a document through operationof the print menu of the application 202, the graphic engine 204 firstcreates an EMF spool file, which is composed of intermediate code, inaccordance with the print instruction from the application 202, andtemporarily spools it. Here, the EMF spool file is an Enhanced Metafiletype file.

Then the print processor 206, similarly loaded in the RAM 111 from theHDD 119, reads the print data temporarily stored as a spool file 205,converts the rendering instructions using GDI functions into DDIfunctions, and sends a notification to the printer driver 207. Here, DDIstands for Device Driver Interface.

The printer driver 207 converts the DDI functions received from theprint processor 206 into PDL commands which can be interpreted by aprinter. The PDL commands after the conversion is output to the printer102 as a print job through the system spooler 208 and via thebidirectional interface 106, in the present configuration.

By temporarily creating a spool file as described above, the application202 is released after all the print instructions are converted intointermediate code and output to the spool file 205. Hence the printerdriver 207 is released earlier than when waiting for the printer driver207 to finish the conversion of all the print instructions into PDLcommands.

The printer driver 207 is configured to be able to process the contentof the spool file 205 in various manners.

In other words, the printer driver 207 can perform enlarging/reducing ofa page, n-up printing in which a plurality of pages are printed as onepage after reduction in size, or the like, in accordance with the layoutinformation set using GUI provided by the printer driver 207.

FIG. 3 shows an example GUI screen displayed on the display 114 by theprinter driver according to the present embodiment.

Reference numeral 301 shows an example of a print tab used for pagesetup. Furthermore, the print tab includes a page size selection box302, a box 303 for specifying the number of copies, a page layoutsetting box 304 for specifying a layout, such as n-up printing, etc.

The print settings specified here are stored in a work area in theprinter driver, and are referred to when print instructions from theprint processor 206 are processed.

In the print quality tab in FIG. 3, print quality settings, such asprint resolution and a color mode can also be specified.

In the configuration described above, various print settings specifiedby a user are included in print data so as to be transmitted to theprinter 102.

FIG. 4 is a sectional view showing the internal structure of an MFP asan example of the printer 102 included in the image processing systemaccording to the present embodiment.

In FIG. 4, reference numeral 410 denotes a mechanical printing unit. Themechanical printing unit 410, when receiving a print instruction, feedsa sheet from a paper feeding unit 400, and the sheet is passed throughan image forming unit 404 using sheet conveying rollers 401, 402, and403. In the image forming unit 404, toner is transferred to the sheetusing electrophotography. In other words, in accordance with a videosignal output from a control unit 420, a laser driver drives asemiconductor laser to scan the surface of an electrostatic drum,whereby an electrostatic latent image is formed which is made of chargedtoner. This latent image, after undergoing development performed by adeveloping unit surrounding the drum, is transferred to a sheet.

The toner transferred to a sheet is fixed on the sheet by heat andpressure while it passes through a fixing device 405. The sheet withtoner fixed thereon is output through a sheet conveying roller 406 to asheet ejecting unit (finisher) 430. However, when the sheet is output asis, the printed surface faces upward (face up). Hence, the sheet isusually switched back using a switch back path 407, whereby the printedsurface is made to face downward (face down), and then output via asheet conveying roller 406 to the finisher 430.

The sheet fed from the mechanical printing unit 410 to the finisher 430is ejected to an upper tray 432 or a lower tray 433 using sheetconveying rollers 431 a to 431 m. The upper tray 432 is a general paperoutput tray, but the lower tray 433 is a paper output tray which canhold sheets that have undergone a folding process. In the finisher 430according to the present embodiment, a paper folding unit 434 isprovided in front of the lower tray 433. A sheet for which folding isspecified is folded by the paper folding unit 434 and then output to thelower tray 433.

The finisher 430 is provided with an inserter 435 used to insert apartitioning sheet. A sheet set on an inserter tray 436 or 437, which ispart of the inserter 435, may be fed at any time. The sheet is output tothe upper tray 432 or the lower tray 433 using sheet conveying rollers438 a to 438 f and sheet conveying rollers 431 e to 431 m.

Reference numeral 420 denotes a control unit (controller) used tocontrol the entire apparatus and corresponds to the control unit 103shown in FIG. 1.

Reference numeral 440 denotes a scanner. An image captured by thescanner 440 is processed by the control unit 420 to produce a copy imageto be printed.

FIG. 14 shows the configuration of part of an image processing module inthe printer driver 207 according to the present embodiment. Referencenumeral 1401 in FIG. 14 denotes an image processing module which iscalled when the DDI function received from the print processor 206 is aninstruction to render image data. The image processing module 1401includes the following modules (1402 to 1407), shown below. Aninput-image-size determination module 1402 determines the image size ofthe image data specified by the print processor 206. Anoutput-image-size determination module 1403 determines the image size ofa destination area. A scaling factor computing module 1404 computes thescaling factor of the image data. A single-color determination module1405 determines whether or not the image data is single-color imagedata. An image replacing module 1406 is a module called when the imagedata is single-color image data. An image command creating module 1407creates image commands used to create PDL data by performing colorprocessing, such as color matching processing, and compressionprocessing on the image data.

Image Data Processing Step

The steps of creating print data in the image processing apparatusaccording to the present embodiment will now be described with referenceto the flowchart shown in FIG. 8.

FIG. 8 shows the steps of processing one block of image data performedby the printer driver 207.

The steps of the flow is controlled by the CPU 109 of the host computer101.

In step S801 shown in FIG. 8, the image processing module 1401 receivesimage data from the print processor 206 in the form of a DDI functioninstructing rendering of the image data. In step S802, the width andheight of a source image are obtained from the rendering parametersspecified by the DDI function.

In step S803, it is determined whether or not the width and/or height ofthe source image is equal to or less than a threshold of 20 pixels. Ifthe determination result is No, the image command creating module 1407creates PDL data as normal image data in step S810.

When the determination result in S803 is Yes, a scaling factor R iscomputed from the widths and heights of the source image and destinationimage in step S804. Note that in the present embodiment, scaling factorsin the x and y directions can be specified independently, as follows:x-direction scaling factor: Rx=dstw/srcwy-direction scaling factor: Ry=dsth/srch

In step S805, it is determined whether or not reduction is specified forthe image data, i.e., whether or not the scaling factor is 1 or less(Rx≦1.0 or Ry≦1.0), and when the determination result in step S805 isYes, it is determined whether or not the image data is single-color datain a later step. If the determination result in step S805 is No, theimage data is processed in step S810 as normal image data for which ascaling factor of 1 or more is specified.

Note that steps S803 and S804, and S805 need not be performed in thisorder.

In other words, it is determined whether or not the image data is withina specified size and reduction is specified.

In step S806, the gradation information of the image data is determined,and when the gradation information of the image data is neither 1 bpp(bpp=the number of gradation bits per pixel) nor 8 bpp, the image datais processed as normal image data in step S810. On the other hand, whenthe determination result in step S810 is Yes, it is determined in stepsS807 and S808 whether or not the image data is single-color image data.When it is determined that the image data is not single-color imagedata, the image data is processed in step S810 as normal image data,similarly to the cases in which the determination results were No insteps prior to step S807. On the other hand, when the determinationresult in step S808 is Yes, the image data undergoes a conversionprocess such that the scaling factor of the image data becomes 1.0 andeach of the parameters srcw and srch is rewritten, in the final stepS809 of the image data processing.

In the present embodiment, the process branches on the basis of thedetermination result regarding the number of the gradation bits of theimage data in step S806; however, the determination step S806 may beomitted when it is determined whether or not the image data issingle-color image data for all the gradation levels supported by thePDL in step S807. Alternatively, when only image data having gradationof 1 bpp is assumed as the target, the processing may be limited togradation of 1 bpp.

In the determination performed on a single-color image in step S807, thedata size of one pixel is switched in accordance with the color spaceand the number of gradation levels of the image data as follows.

-   -   color space=RGB type: 1 pixel=3 bytes (each R,G,B channel is        fixed to 8 bits)    -   color space=gray scale: 1 pixel=1 byte (fixed 256-level        gradation)    -   color space=index type: 1 pixel=n bit (n=1/2/4/8: the same as        the number of gradation bits)

Hence, by determining whether all of the pixels have the same colorvalue, it can be determined whether the pixels have a single color.

As described above, determination of the color value of each of thepixels requires a large amount of time. Hence, this process may causethe total time of the image data processing to become undesirably long.

For this reason, this color value determination process is performedonly when reduction of image data of a predetermined size or less isspecified, thereby decreasing the loss time for the entirety of theprocessing.

Further, the present embodiment is configured so as to performdetermination on single-color data only for image data in which bothsource image width (srcw) and height (srch) are 20 pixels or less;however, not limited to this value (20), a configuration may be used inwhich any value can be specified by a user operation, through a driveruser interface, for example.

Image Data Conversion Process

A conversion process performed in step S809 for an image that has beendetermined to consist of a single color in step S807, will now beexplained with reference to FIGS. 6, 10, and 12.

FIG. 10 illustrates a method of replacing image data according to thepresent embodiment. In FIG. 10, reference numeral 1001 denotes a sourceimage before replacement, and reference numeral 1002 denotes adestination image shown in the form of pixels. Here, it is shown thatthe source image 1001 is a single-color image having a width (srcw) of 7and a height (srch) of 3, and is reduced and rendered in an area havinga width (dstw) of 4 and a height (dsth) of 1.

Here, it has been determined that the source image 1001 consists of asingle image.

Hence, the reduction process is simplified by copying the pixels in thehead portion of the image data in a number corresponding to the size ofthe destination image 1002, thereby omitting a known interpolationprocess such as a decimation process or a smoothing process.

FIG. 6 shows how a source image 601 is replaced, through the conversionprocess, with an image having the same size as that of a destinationimage 602, i.e., replaced with an image having a scaling factor of one.As shown in FIG. 6, srcw and srch are respectively replaced with dstwand dsth, resulting in a scaling factor of one. Hence, the printer 102that receives the image data need not perform any scaling process suchas enlarging or reducing.

FIG. 12 shows examples of image data rendering commands, created by theprinter driver 207 according to the present embodiment, in which theimage has been converted to an image having a scaling factor of one.

As shown by reference numeral 1201 in FIG. 12, the values of theparameters srcw and srch of a “start image” command are respectivelyreplaced with the values of the width and height of the destination.Then in the real image data portion of a “transfer image” command, anamount of 2×1 pixels, which is the same as the size of the destinationarea, is specified. Here it is assumed that each pixel corresponding tothe image data is arranged in the order of R/G/B, and the presentembodiment shows the case of red single-color image data, where R=0xff,G=0, and B=0.

According to the present embodiment, it becomes unnecessary for aprinter driver to transmit image data of a source image whose width andheight are larger than those of a destination area.

This allows reduction in print data size, thereby increasing the speedof an image rendering process.

Further, it becomes unnecessary for an image processing apparatus toperform complex reduction processing, for each pixel, accompanied byinterpolation in accordance with the scaling factor.

This allows reduction of the image data processing load of an imageprocessing apparatus, thereby increasing the speed of a printingprocess.

Second Embodiment

The first embodiment showed an example in which a single-color sourceimage for which reduction is specified is converted into a source imagehaving the same size as that of a destination image, i.e., convertedinto a source image having a scaling factor of one with respect to adestination image; however, the method of conversion is not limited tothis.

For instance, when the transmission path through which the image dataafter conversion is transmitted does not have high specifications, orwhen the printer 102 that receives the image data has a high processingpower, a conversion method according to the present embodiment allowsthe data transmission load to be lowered.

In other words, in the present embodiment, a source image is replacedwith an image consisting of one pixel (1×1 pixel), which is the smallestconfiguration unit, as shown in FIG. 7. Referring to FIG. 7, a sourceimage 701 (srcw=1 and srch=1) which consists of the minimumconfiguration unit is transmitted, and a destination image 702 iscreated from this.

Compared with the first embodiment, the present embodiment allows thedata size of a source image to be reduced to the minimum, therebyenhancing the effect of data reduction on the transmission path.

In this case, an enlarging process is required in the printer 102 thatreceives the image data; however, the printer 102 is assumed to beconfigured so as to be able to perform the enlargement process at highspeed using hardware such as an ASIC.

The following configuration can also be employed to lower thetransmission load.

Single-color image data of a predetermined size required for adestination image may be prepared in the RAM 111 in advance.

In other words, when it has been determined by the single-colordetermination module 1405 that image data is single-color image data,the image replacing module 1406 may replace the input image data withthe single-color image data prepared in advance, rather than newlycreating converted image data whenever it is required.

Specifically, when the single-color determination for image data having1 bpp gradation is performed under the condition of up to a maximum of20×20 pixels, a configuration may be employed in which an array of onlybits “0” and an array of only bits “1” are prepared in advance as shownin FIG. 13 so as to further increase the processing speed.

Since the color value of each pixel that corresponds to image datahaving 1 bpp gradation can take only 0 or 1, it is necessary to provideonly two kinds of arrays (1301 and 1302). Further, since the maximumrequired width×height is 20×20 pixels, two 400-bit or 50-byte arrays canbe applied to all the cases in which conversion is required.

For image data having a gradation of less than 8 bits, padding isperformed such that the number of pixels in the width direction becomesmultiples of eight. In this case, such an array of pixels that is 24pixels wide and 20 pixels high is provided.

Third Embodiment

In this embodiment, the operation of the printer 102 will be describedwhen it receives data, for which reduction has been specified by anapplication, scaled by the host computer before transmission to theprinter 102, as described in the previous embodiments.

Specifically, the case will be described in which there exist successiveimage rendering commands that instruct the printer 102, which receivesthe image data scaled by the host computer, to keep or enlarge the sizeof the image data by a factor of one (same size) or more so as torealize the size specified by the application.

In the present embodiment, the interpretation results of the pluralityof successive image rendering commands are temporarily spooled, so as toperform rendering processing in a batch mode.

As described above, the printer driver 207 converts single-color imagedata, for which reduction is specified, into image data having aspecified scaling factor of one (same size) or more.

This configuration allows the number of program steps performed in theprocessing loop of a program stored in the program ROM 122 a to bedecreased. Further, since the number of accesses to the ROM 122, whichis an external memory, performed by the printer CPU 121 decreases, thehit ratio of the instruction cache in the printer CPU 121 is increased.

Hereinafter, the processing steps performed by the printer 102, when aseries of rendering commands regarding image data are received, areexplained with reference to the flowchart shown in FIG. 9.

First, in step S901, the number of times an image data block is spooled(number of spooling operations) is reset to zero as an initializationprocess. In steps S902 to S905, an image rendering command is receivedand a scaling factor is computed from the width and height parameters ofthe image data block. Since this is similar to the process performed bythe printer driver 207 in the first embodiment, detailed explanation isomitted.

In step S906, it is determined whether or not both of the scalingfactors Rx and Ry are one or more, and when the determination result isYes, the image data block is spooled in step S907. Then, a plurality ofthe spooled image data blocks undergo a rendering process (steps S907 toS915), repeatedly. Here, the rendering process refers to a series ofprocesses from the interpretation of image rendering commands to thecreation of intermediate rendering objects (display list), which can berendered.

When the image data block does not satisfy the determination conditionregarding the width and/or height in step S904, or when thedetermination result in step S906 is No, the process of creatingintermediate rendering objects including a reduction process isperformed for the image data block in steps S911 to S915. Here, stepS913 that creates the image rendering object has a structure in which aloop is repeated as many times as the number of spooling operations,hence the number of spooling operations is to be incremented by one instep S912.

In step S907, the parameters required for the creation of renderingobjects and the image data block itself are obtained from the “startimage” command, “transfer image” command, and “end image” command, andstored in the work memory 123 d. In step S908, the number of spooleddata blocks (number of spooling operations) is incremented by one, andit is determined whether or not the number of spooling operations isbeyond a predetermined maximum number of spooling operations (fixedvalue “MAX” in FIG. 9) in step S909.

When it is determined in step S910 that the number of spoolingoperations does not exceed MAX, the subsequent rendering command is readin advance, and it is determined whether the read rendering command is a“start image” command, i.e., whether a subsequent image exists (stepS910). When the read rendering command is a “start image” command, theflow goes back to step S902 to continue spooling.

When it is determined that the number of spooling operations exceeds MAXin step S909, or that the subsequent rendering command is not a “startimage” instruction in step S910, the flow proceeds to step S913 tocreate image rendering objects from the image data blocks that have beenspooled.

In the present embodiment, as described above, the flow of processingimage rendering commands is divided into two loops: the processing loop(steps S902 to S910) of interpreting a PDL command, and the processingloop (steps S913 to S915) of creating an image rendering object. Thisallows efficient image data processing even when the CPU is configuredto have a small cache, especially in the case in which a large number ofimages each having a minute size are to be processed.

Note that in order for the printer 102 to perform the above-describedprocessing, the printer driver 207 can transmit image data in anuncompressed form so as to make it easy to determine whether or notreceived image data is single-color data.

Fourth Embodiment

When the total number of image data blocks included in a print job or aspecific page is small, it may be more efficient not to perform theabove-described process of single-color determination or replacement.

Hence, in the present embodiment, the number of image data blocksdetermined to have sizes of less than 20 pixels is counted.

By using this counting result, the present embodiment may be configuredto perform the above-described process of single-color determination orthe process of replacement only when the total number of image datablocks included in a print job is more than one.

In this case, the printer driver 207 is configured to spool the contentof print instructions received via the graphic engine 204 on a page orprint job basis. Note that a spooling technology is already disclosedfor performing single-color determination or n-up printing, and hence,description thereof is omitted here.

Other Embodiments

The present invention may also be realized by performing the followingprocessing. That is, by providing a system or an apparatus with astorage medium containing the program code of software that realizes thefunctions of the embodiments, the processing is performed in such amanner that the computer (or a CPU or an MPU) of the system or theapparatus reads the program code stored in the storage medium. In thiscase, the program code itself read from the storage medium realizes thefunctions of the embodiments, and hence, the program code and thestorage medium containing the program code configure the presentinvention.

While the present invention has been described with reference toexemplary embodiments, it is to be understood that the invention is notlimited to the disclosed exemplary embodiments. The scope of thefollowing claims is to be accorded the broadest interpretation so as toencompass all modifications and equivalent structures and functions.

What is claimed is:
 1. An information processing apparatus including atleast one processor and memory communicatively-coupled via a bus thattransmits a print job including input image data to an image processingapparatus to which the information processing apparatus is connected,comprising: a determination unit configured to determine whether or nota piece of the image data being included in the input print job andhaving a size smaller than a predetermined threshold is instructed to bereduced when the image is outputted by the image processing apparatus; acolor value determination unit configured to determine whether the imagedata consists of pixels having a same color value; and a replacementunit configured to replace the pieces of the image data in the printjob, which have the size smaller than the predetermined threshold andinstructed to be reduced, with pieces of image data each having a sizesmaller than the piece of the input image, in the case that the colorvalue determination unit has determined that the image data consists ofpixels having the same color value; and a transmission unit configuredto transmit the replaced pieces of the image data to the imageprocessing apparatus.
 2. The information processing apparatus accordingto claim 1, wherein the replacement unit replaces the pieces of theinput image data after the image data is replaced with the image datahaving a size specified for outputting the pieces of the input imagedata.
 3. The information processing apparatus according to claim 1,wherein the replacement unit replaces the input image data after theimage data is replaced with the image data made up of one pixel.
 4. Theinformation processing apparatus according to claim 1, wherein one pixelamong the pixels of the image data represents gradation by multiplebits.
 5. A method of information processing that controls an informationprocessing apparatus that transmits a print job including input imagedata to an image processing apparatus to which the informationprocessing apparatus is connected, the method comprising: a determiningstep of determining whether or not the image data being included in theinput print job and having a size similar than a predetermined thresholdis instructed to be reduced when the image is outputted by the imageprocessing apparatus; a color value determining step of determiningwhether the image data consists of pixels having a same color value; areplacing step of replacing the pieces of the image data in the printjob, which have the size smaller than the predetermined threshold andinstructed to be reduced, with pieces of image data each having a sizesmaller than the piece of the input image, in the case that the colorvalue determined that the image data consists of pixels having the samecolor value; and a transmitting step of transmitting the replaced piecesof the image data to the image processing apparatus.
 6. The method ofinformation processing according to claim 5, wherein the input imagedata is replaced, after the image data is replaced with the image datahaving a size specified for outputting the input image data.
 7. Themethod of information processing according to claim 5, wherein the inputimage data is replaced, after the image data black is replaced withpieces of image data made up of one pixel.
 8. A non-transitorycomputer-readable storage medium storing a program configured to executethe image processing method according to claim
 5. 9. The method ofinformation processing according to claim 5, wherein one pixel among thepixels of the image data represents gradation by multiple bits.